package com.hxminer.hxwebs.controller;

import com.hxminer.hxwebs.enmus.ResultEnum;
import com.hxminer.hxwebs.exceptions.HxException;
import com.hxminer.hxwebs.model.Orders;
import com.hxminer.hxwebs.model.Product;
import com.hxminer.hxwebs.model.ReUser;
import com.hxminer.hxwebs.model.Result;
import com.hxminer.hxwebs.service.CartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/**
 * Author YRG
 * Created by on 2018/5/15.
 * Describe 购物详情控制类
 */
@RestController
public class CartController {


    @Autowired
    CartService cartService; //购物商品信息

    /**
     * 提交购物车商品详情
     *
     * @param product
     */
    @PostMapping(value = "/hxminer/add/cart")
    public Result<String> saveCartProduct(@Valid Product product) throws Exception {

        return cartService.saveCartProduct(product);
    }


    /**
     * 获取是否添加购物车数据
     *
     * @param product
     * @return
     * @throws Exception
     */

    //获取用户所需支付金额，地址，收件人，电话号码或者邮箱
    //判断是否是有默认地址
    //没有则提示提交地址（提交地址）//发送请求保存地址
    //商品价格商品详情（提交购物的信息）
    //结算的时候判断各个所需的信息是否完成齐全
    //订单生成成功，跳转页面
    //页面显示公司银行卡提供支付，支付完成后进行确认
    //完成支付，等待发货

    /**
     * 获取购物车
     *
     * @param reUser
     * @return
     * @throws Exception
     */
    @PostMapping(value = "/hxminer/give/cartDetails")
    public Result<Product> findByCartProduct(@Valid ReUser reUser) throws Exception {
        if (reUser == null) throw new HxException(ResultEnum.UNKONW_ERROR);
        String userId = reUser.getPhoneMail();
        if (userId == null && "".equals(userId)) throw new HxException(ResultEnum.UNKONW_ERROR);
        return cartService.findByCartProduct(userId);
    }

    /**
     * 删除购物车
     *
     * @param product
     * @return
     * @throws Exception
     */
    @PostMapping(value = "/hxminer/delete/cartDetails")
    public Result<String> deleteCartProduct(@Valid Product product) throws Exception {
        if (null == product || "".equals(product.getUserId()) || null == product.getUserId()) {
            throw new HxException(ResultEnum.UNKONW_ERROR);
        }
        return cartService.deleteCartProduct(product);
    }
}
